#ifndef SEARCH_ALGO_H
#define SEARCH_ALGO_H
#include <vector>
#include <unordered_map>
#include <iostream>

class Search
{
    public:
    // 二分查找目标值 左闭右闭区间
    int binarySearch(std::vector<int>& nums, int target);
    // 二分查找目标值 左闭右开区间
    int binarySearchLCRO(std::vector<int>& nums, int target);
    // 二分查找插入点 无重复元素 
    int binarySearchInsertionSimple(std::vector<int>& nums, int target);
    // 二分查找插入点 有重复元素 
    int binarySearchInsertion(std::vector<int>& nums, int target);
    // 二分查找左边界
    int binarySearchLeftEdge(std::vector<int>& nums, int target);
    // 二分查找右边界
    int binarySearchRightEdge(std::vector<int>& nums, int target);
    // 暴力枚举求解两数之和
    std::vector<int> twoSumBruteForce(std::vector<int>& nums, int target);
    // 辅助哈希表求解两数之和
    std::vector<int> twoSumHashTable(std::vector<int>& nums, int target);
    private:

};


#endif // search_algo.h